<!doctype html>
<title>img parse a sizes attribute</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe data-desc="standards mode" style="width:1000px; height:1000px" src="sizes-iframed.sub.html?doctype=doctype%20html&style="></iframe>
<iframe data-desc="quirks mode" style="width:1000px; height:1000px" src="sizes-iframed.sub.html?doctype=----&style="></iframe>
<iframe data-desc="display:none" style="width:1000px; height:1000px" src="sizes-iframed.sub.html?doctype=doctype%20html&style=display:none"></iframe>
<iframe data-desc="width:1000px" style="width:1000px; height:1000px" src="sizes-iframed.sub.html?doctype=doctype%20html&style=width:1000px%3B%20height:16px"></iframe>
<script>
setup({explicit_done:true});

function check(p, iframe) {
  var current = p.firstElementChild;
  var ref_sizes = current.getAttribute('sizes');
  var expect = p.firstElementChild.currentSrc;
  if (expect) {
    expect = expect.split('?')[0];
  }
  while (current = current.nextElementSibling) {
    test(function() {
      if (expect === '' || expect === null || expect === undefined) {
        assert_unreached('ref currentSrc was ' + format_value(expect));
      }
      var got = current.currentSrc;
      assert_greater_than(got.indexOf('?'), -1, 'expected a "?" in currentSrc');
      got = got.split('?')[0];
      assert_equals(got, expect);
    }, current.outerHTML + ' ref sizes=' + format_value(ref_sizes) + ' (' + iframe.getAttribute('data-desc') + ')');
  }
}

onload = function() {
  [].forEach.call(document.querySelectorAll('iframe'), function(iframe) {
    [].forEach.call(iframe.contentDocument.querySelectorAll('p'), function(p) {
      check(p, iframe);
    });
  });
  done();
}
</script>
